محاسبات کوانتمی (22671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: سلمان ابوالفتح بیگی جلسه 1 محاسبات کوانتمی 1 علم ساخت و استفاده از کامپیوتري است که بر پایه ي اصول مکانیک کوانتم قرار گرفته است. شروع این نظریه را می توان به نکته ي پایه اي نسبت داد که ریچارد فاینمن 2 در سال 1982 به آن اشاره کرد: «به نظر می رسد که مشکلاتی اساسی در راستاي شبیه سازي سیستم هاي کوانتمی با استفاده از کامپیوترهاي کلاسیک وجود دارد.» فاینمن پیشنهاد کرد که براي این کار از کامپیوتري استفاده شود که خود نیز «کوانتمی» کار کند. از این نظر کامپیوتر کوانتمی را می توان یک آزمایشگاه مکانیک کوانتم دانست. براي شروع نظریه محاسبات کوانتمی اولین قدم مطالعه ي اصول مکانیک کوانتم است. در این جلسه ابتدا اجزاي مهم این اصول را به طور خلاصه دوره می کنیم. 1 معادله شرودینگر i ψ t = Hψ معادله شرودینگر 3 نقش قوانین نیوتن در فیزیک کوانتم را دارد. براي فهمیدن این معادله با فرمول بندي همیلتونی مکانیک کلاسیک 4 شروع می کنیم. 1.1 مکانیک همیلتونی ذره اي با جرم m را در نظر بگیرد که در یک فضاي یک بعدي در حرکت است. مکان این ذره را با q و تکانه 5 آن را با p نمایش می دهیم و فرض می کنیم که ذره در پتانسیل (t V = V,q) قرار دارد. در این صورت انرژي کل ذره برابر است با H = T + V T = p2 انرژي جنبشی آن است. دو معادله ي زیر را در نظر بگیرید. که 2m { q = H p (1) ṗ = H q 1 Quantum computation 2 Rechard Feynman 3 Schrödinger Equation 4 Hamiltonian mechanics 5 Momentum 1
). ẋ = dx از آنجا که V مستقل از p است داریم در اینجا منظور از ẋ مشتق تابع x نسبت به زمان ) t ( است ) H p = T p = p m و لذا معادله اول چیزي جز تعریف تکانه p = m q نیست. به طور مشابه از آنجا که T مستقل از q است از معادله ي دوم بدست می آوریم ṗ = V q. در نتیجه از ترکیب این دو داریم m q = V q که همان قانون دوم نیوتن است. در واقع (1) فرمول بندي معادلی با F = ma است که به آن فرمول بندي همیلتونی گفته می شود و کل مکانیک کلاسیک را می توان براساس آن پایه ریزي کرد. آورد. در حالت کلی وقتی n ذره داریم براي هر کدام از آنها مختصات p i, q i را در نظر می گیریم. در این صورت هر «حالت» 6 سیستم بوسیله یک نقطه ( p, q) := (p 1,..., p n, q 1,..., q n ) R 2n مشخص می شود. فضاي همه حالات سیستم (در اینجا ( R 2n «فضاي فاز» نامیده می شود. همیلتونی H شرایط فیزیکی اي که بر این n ذره حاکم است را توصیف می کند و در صورت دانستن حالت سیستم در زمان = 0 t از معادلات زیر می توان حالت سیستم را در هر زمان t بدست { qi = H p i (2) p i = H q i 2.1 کمیت هاي فیزیکی یک کمیت فیزیکی به هر حالت سیستم q(t)) ( p(t), در زمان t یک عدد q(t)) f ( p(t), نسبت می دهد. در واقع هر کمیت فیزیکی مستقل از زمان چیزي جز یک تابع f : R 2n R روي فضاي فاز نیست. در اینصورت تغییرات این کمیت در طول زمان را می توان بر حسب همیلتونی بدست آورد. براي این کار نیاز به تعریف کروشه پواسون 7 داریم. براي {f, g} := n i=1 f g f g. q i p i p i q i دو تابع f, g : R 2n R تعریف می کنیم حال براي تغییرات کمیت f داریم 6 State 7 Poisson bracket df = f n t + f q i + f p i q i p i = n i=1 = {f, H} i=1 f H f H q i p i p i q i 2
که در سطر دوم از معادلات (2) و این فرض که f مستقل از زمان است استفاده کردیم. به طور خلاصه داریم df = {f, H}. (3). یعنی انرژي dh براي مثال کمیت انرژي کل سیستم توسط همیلتونی H بیان می شود و داریم = 0 {H,H} = کل یک سیستم بسته تحت زمان ثابت است که این همان قانون بقاي انرژي است. 3.1 مکانیک کوانتم در مکانیک کوانتم فضاي فاز به جاي R 2n یک فضاي هیلبرت 8 است یعنی یک فضاي برداري روي اعداد مختلط که مجهز به ضرب داخلی است و با متري که از ضرب داخلی آن بدست می آید کامل 9 است. در واقع فضاي فاز نه همه فضاي هیلبرت بلکه فقط شامل بردارهاي به طول واحد در این فضا ست. اگر فضاي هیلبرت را با W و ضرب داخلی آن را با, نمایش دهیم هر حالت سیستم برداري است ψ W که = 1 ψ. ψ 2 = ψ, کمیت هاي فیزیکی در مکانیک کوانتم به جاي توابع روي فضاي فاز عملگرهاي خطی 10 روي فضاي هیلبرت هستند. براي مثال انرژي کل سیستم یک علمگر خطی خودالقاح (هرمیتی) H : W W 11 است. معادلات (2) در مکانیک کوانتم به معادله شرودینگر تبدیل می شوند i ψ t = Hψ (4) که در آن 1 = i و ثابت پلانک 12 است. در حالت کلی H می تواند به زمان بستگی داشته باشد. ولی اگر مستقل از t باشد خواهیم داشت ψ(t) = e it H ψ(0). (5) اگر سیستم در حالت ψ باشد و F : W W یک کمیت فیزیکی «متوسط» F برابر خواهد بود با 8 Hilbert space 9 Complete 10 Linear operator 11 Hermitian 12 Planck s constant F := F ψ, ψ. 3
در نتیجه تغییرات F در زمان را می توان محاسبه کرد. d F = d F ψ, ψ = F ψ, d ψ + F d ψ, ψ = F ψ, i Hψ + i F Hψ, ψ = i HF ψ, ψ i F Hψ, ψ = i [H, A]ψ, ψ = i [H, A] که در سطر چهارم از ϕ ϕ, Xϕ = X ϕ, و اینکه H H = هرمیتی است استفاده کردیم. همچنین = ] Y [X, XY Y X براکت لی 13 یا جابجاگر 14 دو عملگر X و Y است. لذا رابطه را به دست می آوریم که معادل کوانتمی (3) است. d F = i [H, A] 2 مطالبی که در نظریه محاسبات کوانتمی مطالعه می شوند همان طور که گفته شد اصلی ترین هدف نظریه محاسبات کوانتمی ساخت یک کامپیوتر کوانتمی است. این نظریه شامل مباحث مختلفی از جمله ذخیره اطلاعات کدگذاري و پردازش آنها انتقال اطلاعات (مخابرات) و رمزنگاري می شود. براي آشنا شدن با اجزاي این نظریه بهتر است با نظریه ي کاملا کلاسیک شروع کنیم. 1.2 نمایش اطلاعات اولین قدم براي انجام هر محاسبه اي (حل هر مسا له اي) نمایش «داده هاي مسا له» است. براي مثال مسا له ي جمع دو عدد طیبعی را در نظر بگیرید. ما اعداد را با دنباله اي از ارقام نمایش می دهیم. مثلا در سیستم دو-دویی 15 هر عدد با دنباله اي از ارقام 0 و 1 مشخص می شود. نمایش داده ها به صورت دو-دویی فقط مختص اعداد نیست. سیستم یونیکد 16 روشی است براي نمایش هر گونه اطلاعات متنی به صورت دنباله هاي 0 و 1. حتی اطلاعات صوتی و تصویري نیز از این قاعده مستثنی نیستند. توجه کنید که در اینجا تا کید بر روي روش دو-دویی نیست. ایده ي مهمی که وجود دارد تجزیه ي حجمی از داده ها به اجزاي کوچکتر است به طوري که نمایش تک تک این اجزا ساده تر باشد. بر این اساس هر داده یک دنباله ي a i {0, 1} در سیستم دو-دویی یکی از چند مقدار مشخص را می گیرد. a i است که هر از پارامترهاي a 1, a 2,..., a n و a i یک بیت 17 نامیده می شود. 13 Lie bracket 14 Commutator 15 Binary 16 Unicode 17 Bit 4
حال این سو ال پیش می آید که چطور این اطلاعات به ابزار محاسبگر داده شود. صفحه نمایش ماشین حساب را در نظر بگیرید. اگر خود را به سیستم دو-دویی محدود کنیم این صفحه قابلیت نمایش اعداد با حداکثر به طور مثال ده رقم را دارد. جایگاه هر یک از این ارقام با یک لامپ مشخص می شود که روشن یا خاموش بودن لامپ مربوط به a i تعیین کننده ي این است که = 1 i a یا = 0 i a. مثال کلی تر نمایش اطلاعات به وسیله یک مدار الکتریکی است که n جزء آن علامت گذاري شده است. اگر مقدار جریان عبوري از جزء i -ام بیشتر از حدي از پیش تعیین شده باشد این را به عنوان = 1 i a می گیریم و در غیر این صورت = 0 i a. مثال پیچیده تر اسپین n 18 الکترون است. اگر اسپین i -ام (در راستایی از پیش تعیین شده) به سمت بالا باشد آن را به عنوان = 1 i a می گیریم و در صورت پایین بودن = 0 i a. 2.2 الگوریتم به مسا له محاسبه مجموع دو عدد بر می گردیم. براي انجام عمل جمع آن را به دنباله اي از دو عمل آسان تر تقسیم می کنیم: (1) جمع ارقام (2) «ده بر یک». براي مثال عمل جمع در مبناي دو دنباله اي است از اعمال دو تابع AND, XOR : {0, 1} {0, 1} {0, 1} که 2) XOR(x, y) = x + y( mod و.AND(x, y) = xy کیلومترشمار اتومبیل مثالی است از وسیله اي ساده که قابلیت انجام این دو عمل را دارد. به طور کلی هر وسیله محاسبه (کامپیوتر) وسیله اي است که علاوه بر نمایش اطلاعات قابلیت اعمال دنباله اي از «توابع ساده» بر روي آنها را دارد. AND, XOR دو مثال از این توابع ساده هستند. مثال هاي دیگر شامل OR, NOT است:. NOT(x) = x + 1( mod 2) و OR(x, y) = xy + x + y( mod 2) توابع XOR, AND, OR, NOT در اصطلاح گیت 19 نامیده می شوند. AND, XOR, OR گیت هاي دو-بیتی 20 و NOT یک گیت یک-بیتی هستند. قضیه زیر با استقراء روي n قابل اثبات است. قضیه 1 هر تابع F : {0, 1} n {0, 1} m را می توان برحسب گیت هاي AND, OR, NOT نوشت. به مجموعه NOT} {AND, OR, با خاصیت قضیه فوق یک مجموعه عام از گیت ها 21 گفته می شود. با فرض کردن قضیه فوق می توان نشان داد NOT} {AND, نیز یک مجموعه عام از گیت ها ست (کافی است OR را با استفاده از قوانین دمورگان 22 برحسب AND و NOT بنویسیم). همچنین NAND =: NOT AND نیز یک مجموعه عام است ولی XOR} {NOT, عام نیست. هر وسیله اي که قابلیت اعمال یک مجموعه عام از گیت ها را داشته باشد قابلیت انجام «هر محاسبه اي» را دارد. زیرا یک محاسبه چیزي نیست جز اعمال یک تابع بر روي داده هاي آن. از این زاویه یک «الگوریتم» روشی است براي تقسیم یک مسا له به اجزاي کوچک تر یا به عبارت دیگر نوشتن یک تابع بر حسب گیت ها. 18 Spin 19 Gate 20 Two-bit gate 21 Universal set of gates 22 De Morgan s laws 5
3.2 تصحیح خطا به وسیله کدگذاري کامپیوتري را در نظر بگیرید که در آن کم یا زیاد بودن جریان در قسمت هاي مختلف یک مدار نشان دهنده اطلاعات ورودي مسا له باشد و قابلیت اعمال گیت هاي یک مجموعه عام را نیز داشته باشد. بدون شک دماي محیط بر خواص فیزیکی مدارهاي این کامپیوتر تا ثیر می گذارد. همچنین کم یا زیاد شدن ولتاژ تا مین کننده انرژي کامپیوتر بر کارایی آن مو ثر است. در نتیجه مثلا اگر یکی از بیت هاي داده مسا له = 1 i a باشد با توجه به این تا ثیرات محیطی ممکن است به = 0 i a تبدیل شده و در درستی محاسبه اخلال وارد کند. ابزاري که براي جلوگیري از این گونه خطاها استفاده می شود کدگذاري 23 اطلاعات است. مثال زیر ایده ي کدگذاري اطلاعات را به خوبی توضیح می دهد. فرض کنید اطلاعات ورودي شامل سه بیت = 3 a 1 a 2 a 010 باشد. فرض کنید که تا ثیرات محیطی باعث شوند که در طول محاسبات هر یک از این بیت ها با احتمال p با خطا مواجه شود یعنی با احتمال a i p به ) i NOT(a تبدیل شود. همچنین فرض کنید که این خطاها از هم مستقل هستند در نتیجه 010 با احتمال p 2 به 100 تبدیل می شود. براي جلوگیري از خطا هر بیت a را با aaa نمایش می دیم. مثلا بجاي استفاده از یک اسپین براي نمایش هر بیت از سه اسپین استفاده می کنیم و جهت هر سه اسپین را برابر می گیریم. در این صورت سه بیت 010 در کامپیوتر با 000111000 نشان داده می شوند. حال فرض کنید که در حین محاسبه خطا ایجاد شده و دنباله ذخیره شده در کامپیوتر 010111000 باشد. با توجه به نحوه کدگذاري اطلاعات متوجه می شویم که سه بیت اول باید یکسان باشند و لذا خطا رخ داده: یا همگی باید 1 باشند و یا 0. اگر قبل از خطا همگی 1 بوده باشند یعنی روي بیت اول و سوم خطا ایجاد شده و این با احتمال p 2 اتفاق می افتد. در حالت دیگر خطا فقط روي بیت دوم است و احتمال آن p است. در نتیجه ما فرض می کنیم خطاي اتفاق افتاده پیشا مد با احتمال بیشتر یعنی p است. لذا اطلاعات ذخیره شده را به صورت 000111000 تصحیح 24 می کنیم. توجه کنید قبل از کدگذاري احتمال بروز خطا روي هر بیت از اطلاعات p بود ولی با استفاده از کدگذاري a aaa احتمال خطا به p = 3p 2 1) (p + p 3 کاهش پیدا کرد. براي کم تر کردن احتمال خطا کافی است اطلاعات کد شده را دوباره و دوباره کد کنیم. 25 CD مثالی از کاربرد کدگذاري است که بعضا اطلاعات ذخیره شده حتی با وجود خش بر روي آن قابل بازیابی است. 4.2 نظریه ي محاسبات کوانتمی مفاهیمی که تا کنون توضیح داده شد مانند نمایش اطلاعات به وسیله ي بیت ها گیت ها الگوریتم و کدگذاري هیچ کدام مختص فیزیک کلاسیک نیستند. در حضور نظریه ي فیزیک کوانتم مسا له نمایش و ذخیره ي اطلاعات کوانتمی مطرح می شود. براي نمایش اطلاعات کوانتمی همانند دنیاي کلاسیک آنها را به اجزاي کوچک تر تقسیم می کنیم. از آنجا که فضاي فاز هر سیستم کوانتمی یک فضاي برداري است هر کدام از این اجزاي کوچک چیزي جز یک فضاي برداري با بعد 23 Coding 24 Decode 25 Concatenation of codes 6
پایین نیست. به عنوان مثال یک فضاي برداري با بعد دو معادل کوانتمی یک بیت است و کیوبیت 26 خوانده می شود. در دنیاي کلاسیک گیت ها توابع (تحول هاي زمانی) ساده اي هستند که بر روي سیستم هاي فیزیکی قابل تصورند. در دنیاي کوانتمی تحولات زمانی یک سیستم به وسیله معادله شرودینگر و یا به طو معادل (در صورتی که همیلتونی مستقل e it از آنجا که H هرمیتی است یک عملگر از زمان باشد) با رابطه (5) داده می شوند. توجه کنید که عملگر خطی H یکانی 27 است. پس در سیستم هاي کوانتمی تحول زمانی به وسیله ي عملگرهاي خطی یکانی داده می شوند. لذا گیت هاي کوانتمی عملگرهاي یکانی اي هستند که روي فضاهاي برداري با بعد پایین تعریف شده اند. براي بدست آوردن قضیه اي همانند قضیه 1 باید مجموعه اي از گیت هاي کوانتمی یافت که هر عملگر یکانی دیگر را بتوان بر حسب آنها نوشت. از این نقطه نظر یک الگوریتم کوانتمی چیزي جز نوشتن یک عملگر یکانی برحسب گیت هاي کوانتمی یک مجموعه عام نیست. همان طور که کدگذاري در دنیاي کلاسیک باعث جلوگیري از تا ثیر محیط بر ذخیره و پردازش اطلاعات می شود در دنیاي کوانتمی نیز نیاز به کدهاي کوانتمی داریم. از دیگر مباحثی که در نظریه محاسبات کوانتمی به آنها پرداخته می شود می توان به پیچیدگی محاسبات 28 مخابرات 29 و نظریه ي اطلاعات 30 رمزنگاري 31 و نظریه کنترل 32 نام برد. براي مثال نظریه ي پیچیدگی محاسبات سعی در دسته بندي مساي ل محاسباتی بر حسب سختی و آسانی آنها روي یک کامپیوتر کلاسیک دارد. پیچیدگی محاسبات کوانتمی 33 سعی در دسته بندي مساي ل در حضور یک کامپیوتر کوانتمی دارد. به طور مشابه نظریه هاي رمزنگاري کوانتمی اطلاعات کوانتمی و غیره قابل تعریف هستند. 26 Qubit 27 Unitary 28 Computational complexity theory 29 Communication 30 Information theory 31 Cryptography 32 Control thoery 33 Quantum complexity thoery 7